package cn.tedu.spring.life;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

@Component
public class Life {
    /*
    *spring bean 的生命周期
    * 1.实例化[构造方法]
    * 2.属性赋值[set方法]
    * 3.初始化[@PostConstruct]：初始化之后，使用之前
    * 4.使用
    * 5.销毁[@PreDestroy]：销毁之前
     */
    private String mean;
    public Life(){
        System.out.println("1.调用无参构造方法实例化");
    }
    public Life(String mean) {
        this.mean = mean;
    }
    @Value("世界那么大，我想去看看")
    public void setMean(String mean) {
        this.mean = mean;
        System.out.println("2.调用set方法属性赋值");
    }
    @PostConstruct
    public void init(){
        //初始化之后，使用之前
        System.out.println("3.执行生命周期初始化方法");
    }
    @PreDestroy
    public void destroy(){
        //销毁之前
        System.out.println("5.执行生命周期销毁方法");
    }
}
